﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Caching;
using System.Web.Mvc;
//using www.SService;

namespace www.Controllers
{
    public class StaffControllers : Controller
    {
       
        private readonly ObjectCache _cache = MemoryCache.Default;
        //private readonly ServiceClient _service1 = new ServiceClient();
        //private readonly Utility _utility = new Utility();
        //// private static List<SelectListItem> _listItemsList;
        ////
        //// GET: /Staff/
        //[HttpGet]
        //public ActionResult Index()
        //{
        //    try
        //    {
        //        if (_cache["Staff"] == null)
        //        {
        //            var lData = _service1.GetRelaxStaffDataContracts();
        //            if (lData.Any())
        //            {
        //                var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(27) };
        //                _cache.Set("Staff", lData, policy);
        //                ViewData["Data"] = lData.ToList();
        //            }
        //        }
        //        else
        //        {
        //            var lData = (List<RelaxStaffDataContract>)_cache["Staff"];
        //            ViewData["Data"] = lData.ToList();

        //        }
               
        //        return View();
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }
        //}
      
        //private void LoadDegree(string degree = null)
        //{
        //    if (string.IsNullOrEmpty(degree))
        //    {
        //        var listItemsList = new List<SelectListItem>
        //           {
        //               new SelectListItem {Text = "Cử nhân", Value = "Cử nhân", Selected = true},
        //               new SelectListItem {Text = "Kỹ sư", Value = "Kỹ sư"},
        //               new SelectListItem {Text = "Thạc sĩ", Value = "Thạc sĩ"},
        //               new SelectListItem {Text = "Tiến sĩ", Value = "Tiến sĩ"},
        //                new SelectListItem {Text = "Phó giáo sư", Value = "Phó giáo sư"},
        //                 new SelectListItem {Text = "Giáo sư", Value = "Giáo sư"}
        //           };
        //        ViewBag.Degree = listItemsList;

        //    }
        //    else
        //    {
        //        var listItemsList = new List<SelectListItem>
        //       {
        //           new SelectListItem {Text = "Cử nhân", Value = "Cử nhân", Selected = degree=="Cử nhân"},
        //               new SelectListItem {Text = "Kỹ sư", Value = "Kỹ sư",Selected = degree=="Kỹ sư"},
        //               new SelectListItem {Text = "Thạc sĩ", Value = "Thạc sĩ",Selected = degree=="Thạc sĩ"},
        //               new SelectListItem {Text = "Tiến sĩ", Value = "Tiến sĩ",Selected = degree=="Tiến sĩ"},
        //               new SelectListItem {Text = "Phó giáo sư", Value = "Phó giáo sư",Selected = degree=="Phó giáo sư"},
        //               new SelectListItem {Text = "Giáo sư", Value = "Giáo sư",Selected = degree=="Giáo sư"}
        //       };
        //        ViewBag.Degree = listItemsList;
        //    }
        //}

        //private void LoadMinistry(string ministry = null)
        //{
        //    if (string.IsNullOrEmpty(ministry))
        //    {
        //        var listItemsList = new List<SelectListItem>
        //           {
        //               new SelectListItem {Text = "Nhân viên", Value = "Nhân viên", Selected = true},
        //               new SelectListItem {Text = "Trưởng nhóm", Value = "Trưởng nhóm"},
        //               new SelectListItem {Text = "Phó phòng", Value = "Phó phòng"},
        //               new SelectListItem {Text = "Trưởng phòng", Value = "Trưởng phòng"},
        //               new SelectListItem {Text = "Phó giám đốc", Value = "Phó giám đốc"},
        //               new SelectListItem {Text = "Giám đốc", Value = "Giám đốc"}
        //           };
        //        ViewBag.Ministry = listItemsList;

        //    }
        //    else
        //    {
        //        var listItemsList = new List<SelectListItem>
        //       {
        //           new SelectListItem {Text = "Nhân viên", Value = "Nhân viên", Selected = ministry=="Nhân viên"},
        //               new SelectListItem {Text = "Trưởng nhóm", Value = "Trưởng nhóm",Selected = ministry=="Trưởng nhóm"},
        //               new SelectListItem {Text = "Phó phòng", Value = "Phó phòng",Selected = ministry=="Phó phòng"},
        //               new SelectListItem {Text = "Trưởng phòng", Value = "Trưởng phòng",Selected = ministry=="Trưởng phòng"},
        //               new SelectListItem {Text = "Phó giám đốc", Value = "Phó giám đốc",Selected = ministry=="Phó giám đốc"},
        //               new SelectListItem {Text = "Giám đốc", Value = "Giám đốc",Selected = ministry=="Giám đốc"}
        //       };
        //        ViewBag.Ministry = listItemsList;
        //    }
        //}

        //private void LoadGender(int sex=0)
        //{
        //    if (sex == 0)
        //    {
        //        var listItemsList = new List<SelectListItem>
        //           {
        //               new SelectListItem {Text = "Nam", Value = "1", Selected = true},
        //               new SelectListItem {Text = "Nữ", Value = "0"}
        //           };
        //        ViewBag.Sex = listItemsList;
        //    }
        //    else
        //    {
        //        var listItemsList = new List<SelectListItem>
        //           {
        //               new SelectListItem {Text = "Nam", Value = "1", Selected = sex==1},
        //               new SelectListItem {Text = "Nữ", Value = "0",Selected = sex==0}
        //           };
        //        ViewBag.Sex = listItemsList;
        //    }
        //}

        //[HttpGet]
        //public ActionResult Add()
        //{
        //    LoadDegree();
        //    LoadGender();
        //    LoadMinistry();

        //    return View();
        //}

        //[HttpPost]
        //public ActionResult Add(FormCollection collection)
        //{
        //    try
        //    {
        //        var degree = collection["Degree"];
        //        var ministry = collection["Ministry"];
        //        var sex = collection["Sex"];
        //        LoadDegree(degree);
        //        LoadMinistry(ministry);
        //        LoadGender(Convert.ToInt32(sex));

        //        var name = collection["txtName"];
        //        if (string.IsNullOrEmpty(name))
        //        {
        //            Response.Write("<script>alert('Tên không được trống');</script>");
        //            return View();
        //        }
        //        var file = Request.Files["fufile"];
        //        if (file != null && string.IsNullOrEmpty(file.FileName))
        //        {
        //            Response.Write("<script>alert('hình ảnh không được trống');</script>");
        //            return View();
        //        }
        //        if (file != null)
        //        {
        //            var path = "Images/Staff/" + file.FileName;
        //            file.SaveAs(Server.MapPath("~/" + path));
        //            var active = collection["chkActive"].Split(',').Length > 1 ? 1 : 0;
        //            var staff = new RelaxStaffDataContract
        //            {
        //                Name = name,
        //                Image = path,
        //                Birthday = Convert.ToDateTime(collection["txtBirthday"]),
        //                Gender = Convert.ToInt32(sex),
        //                Identification = Convert.ToInt32(collection["txtCMND"]),
        //                Email = collection["txtEmail"],
        //                Tel = collection["txtsdt"],
        //                Degree = degree,
        //                Ministry = ministry,
        //                SalaryRatio = float.Parse(collection["txtHesoluong"]),
        //                Salary = float.Parse(collection["txtLuongcoban"]),
        //                Allowance = float.Parse(collection["txtPhucap"]),
        //                Hometown = collection["txtQuequan"],
        //                DateBegin = Convert.ToDateTime(collection["txtFromDate"]),
        //                DateEnd = Convert.ToDateTime(collection["txtToDate"]),
        //                Active = active
        //            };
        //            var adId = _service1.AddStaff(staff);
        //            if (adId <= 0) return RedirectToAction("Add", "Staff");
        //            var login = new RelaxLoginsDataContract
        //            {
        //                UserName = collection["txtUsername"],
        //                Password = _utility.Encrypt("Dragon_hy", collection["txtpassword"]),
        //                Active = active,
        //                StaffId = adId
        //            };
        //            var logId = _service1.AddLogin(login);

        //            staff.LoginId = Convert.ToInt32(logId);
        //            staff.UserName = login.UserName;
        //            staff.Id = adId;
        //            var lData = (List<RelaxStaffDataContract>)_cache["Staff"];
        //            if (lData == null)
        //                lData = new List<RelaxStaffDataContract> { staff };
        //            else
        //                lData.Add(staff);

        //            _cache["Staff"] = lData;
        //        }

        //        return RedirectToAction("Index", "Staff");
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }
        //}

        //[HttpGet]
        //public ActionResult Edit(int id = 0)
        //{
        //    try
        //    {
        //        var lData = (List<RelaxStaffDataContract>)_cache["Staff"];
        //        var first = lData.FirstOrDefault(p => p.Id == id);
        //        if (first == null)
        //            return HttpNotFound();

        //        LoadDegree(first.Degree);
        //        LoadMinistry(first.Ministry);
        //        LoadGender(first.Gender);

        //        return View(first);
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return RedirectToAction("Index", "Staff");
        //    }
        //}

        //[HttpPost]
        //public ActionResult Edit(FormCollection collection)
        //{
        //    try
        //    {
        //        var id = collection["id"];
        //        var degree = collection["Degree"];
        //        var ministry = collection["Ministry"];
        //        var sex = collection["Sex"];
        //        LoadDegree(degree);
        //        LoadMinistry(ministry);
        //        LoadGender(Convert.ToInt32(sex));

        //        var name = collection["txtName"];
        //        if (string.IsNullOrEmpty(name))
        //        {
        //            Response.Write("<script>alert('Tên không được trống');</script>");
        //            return View();
        //        }
              
        //        var lData = (List<RelaxStaffDataContract>)_cache["Staff"];
        //        var first = lData.FirstOrDefault(p => p.Id == Convert.ToInt32(id));
        //        if (first == null)
        //            return View();

        //        var file = Request.Files["fufile"];
        //        var path = "";
        //        if (file != null && !string.IsNullOrEmpty(file.FileName))
        //        {
        //            path = "Images/Staff/" + file.FileName;
        //            file.SaveAs(Server.MapPath("~/" + path));
        //            _utility.DeleteFile(Server.MapPath("~/"+first.Image));
        //        }
        //        else
        //            path = first.Image;
        //        var active= collection["chkActive"].Split(',').Length > 1 ? 1 : 0;
        //        first.Name = name;
        //        first.Image = path;
        //        first.Birthday = Convert.ToDateTime(collection["txtBirthday"]);
        //        first.Gender = Convert.ToInt32(sex);
        //        first.Identification = Convert.ToInt32(collection["txtCMND"]);
        //        first.Email = collection["txtEmail"];
        //        first.Tel = collection["txtsdt"];
        //        first.Degree = degree;
        //        first.Ministry = ministry;
        //        first.SalaryRatio = float.Parse(collection["txtHesoluong"]);
        //        first.Salary = float.Parse(collection["txtLuongcoban"]);
        //        first.Allowance = float.Parse(collection["txtPhucap"]);
        //        first.Hometown = collection["txtQuequan"];
        //        first.DateBegin = Convert.ToDateTime(collection["txtFromDate"]);
        //        first.DateEnd = Convert.ToDateTime(collection["txtToDate"]);
        //        first.Active = active;

        //        var ok = _service1.UpdateStaff(first);
        //        if (!ok) return RedirectToAction("Add", "Staff");

        //        first.UserName = collection["txtUsername"];
        //        _cache["Staff"] = lData;

        //        if (!string.IsNullOrEmpty(collection["txtpassword"]))
        //        {
        //            var login = new RelaxLoginsDataContract
        //            {
        //                Id = first.LoginId,
        //                UserName = first.UserName,
        //                Password = _utility.Encrypt("Dragon_hy", collection["txtpassword"]),
        //                Active = active
        //            };
        //            _service1.UpdateLogin(login);
        //        }

        //        return RedirectToAction("Index", "Staff");
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }

        //}

        //[HttpGet]
        //public ActionResult Delete(int id)
        //{
        //    try
        //    {
        //        var lId = new List<int> { id };
        //       // var ok = _service1.DeleteStaff(lId);
        //        //if (ok)
        //        //{
        //        //    var lData = (List<RelaxStaffDataContract>)_cache["Staff"];
        //        //    var first = lData.FirstOrDefault(p => p.Id == id);
        //        //    if (first != null)
        //        //    {
        //        //        _utility.DeleteFile(Server.MapPath("~/" + first.Image));
        //        //        //_service1.DeleteLogins(first.LoginId);
        //        //        lData.Remove(first);
        //        //    }
        //        //    _cache["Staff"] = lData;
        //        //}
        //        return RedirectToAction("Index", "Staff");
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return RedirectToAction("Index", "Staff");
        //    }

        //}

        //[HttpGet]
        //public ActionResult Detail(int id = 0)
        //{
        //    try
        //    {
        //        var lData = (List<RelaxStaffDataContract>)_cache["Staff"];
        //        var first = lData.FirstOrDefault(p => p.Id == id);
        //        if (first == null)
        //            return HttpNotFound();

        //        return View(first);
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return RedirectToAction("Index", "Staff");
        //    }
        //}
    }
}
